<?php

require_once 'fonctions_genXML.php';  
require_once 'fonctions_majBDD.php';  


/////////// FONCTION Génération d'un tableau à partir du CSV

function gener_tableaucsv($fichiercsv,$c) {
    
            $ouvert = fopen($fichiercsv, "r"); /// ouverture fichier CSV en lecture seulement
            echo "<br>Le fichier  $fichiercsv est de longueur " . filesize($fichiercsv) . " et se base sur $c colonnes.<br><br>";

			$contenu_fichier = file_get_contents($fichiercsv);
			$nblignes = 1+substr_count($contenu_fichier,"\n");
			
				
			echo "<p> nb de lignes : $nblignes</p>";

				?>
				<div id="barre_progression">			
				<?php
				
					$i = 1;
					while (!feof($ouvert)) { /// boucle pour remplir tableaucsv avec les donnees du CSV
						$colonnes = fgetcsv($ouvert, 0, "$");
						$nbcol = count($colonnes);
						// echo "<br>" . $i . " (" . $nbcol . " colonnes) : "; /// affichage nb colonnes pr debug
						for ($j = 0; $j <= $c ; $j++) {
							// echo $colonnes[$j] . " - "; /// affichage des colonnes pr debug
							$tableaucsv[$i][$j] = $colonnes[$j];
						}
						$progression = filesize($fichiercsv)*$i/$nblignes;
						
						?>
						<progress value="<?php echo $progression; ?>" max="<?php echo filesize($fichiercsv); ?>">2%</progress>
						<?php
						echo "$i<br>";
						
						if ($nbcol>$c+1) {
							echo "<br> -> Prof n° ". $colonnes[0] . " a comme classe(s) : ";
							for ($j = 7; $j <= $nbcol - 1 ; $j++) {
								echo $colonnes[$j] . " - "; /// affichage des colonnes pr debug
								$tableaucsv[$i][$j] = $colonnes[$j];
							}				
						}
						$i++;
					} /// fin boucle pour remplir tableaucsv avec CSV  
            
				?>
				</div>			
				<?php
			
            fclose($ouvert);
            
    return $tableaucsv;
}

/////////// FONCTION Transformation Format date CSV -> Format date BDD

function jma2amj($jma) {
	$date = explode("/",$jma);
	return $date[2]."-".$date[1]."-".$date[0];
}

/////////// FONCTION Recherche "valeur" dans fichier.ini

function recup_ini($recherche) {
	$fichier_ini = "res/csv2xml.ini";
	//$recherche = "chemin_csv";
	
	if (file_exists($fichier_ini) && ($fichier_lu = file($fichier_ini))) {
		foreach ($fichier_lu as $ligne) {
			if (!preg_match("#^\[#",$ligne)) {
				$element = explode("=",$ligne);
				if ($element[0]==$recherche) {
					return trim($element[1]);
				}
			}	
		}
	} else {
		return "res";
	}
	fclose($fichier_ini);
}

/////////// FONCTION Connexion à BDD

function connexion_Table($bdd, $table) {

		$dsn = "mysql:host=localhost;dbname=".$bdd; /// ouverture BdD
        $username = "root";
        $passwd = "root";

        try {
            $pdo = new PDO($dsn, $username, $passwd, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
			/// utilisation d'une classe PDO
            // echo "<br>Pas d'erreur BdD apparemment <br>";
        } catch (PDOException $ex) {
            echo "Erreur connexion BdD <br>";
        }
		// echo "vardump de pdo ds connexion()";
        // var_dump($pdo);
		return $pdo;
}


function serialiser($tableau) {

        $tableau_serial = serialize($tableau);
        return htmlspecialchars($tableau_serial);
}


function deserialiser($tableau_serial) {

        $tableau_serial_deslash = htmlspecialchars_decode($tableau_serial);
        return unserialize($tableau_serial_deslash);
}


function csv2ilias($groupe_csv) {

		$pdo_g = connexion_Table("beaufrene", "Groupes");
		
		$sql_g = 'SELECT *'; 
		$sql_g .= ' FROM Groupes'; 
		$sql_g .= ' WHERE libelle_csv_groupe="'.$groupe_csv.'"';
	
		// echo "<br>Requete SQL : $sql_g<br>";
		$req_g = $pdo_g->query($sql_g);
		
		$result_g = $req_g->fetchColumn(2);
		// echo "<p> Le libellé xml de $groupe_csv est : $result_g </p>";
		
		return $result_g;	
}

function generer_login($nom,$prenom) {
		
		$partie1= strtoupper(substr($nom, 0, 3));
		$partie2= strtoupper(substr($prenom, 0, 3));
		
		return $partie1 . "." . $partie2;
}


function quel_groupe($fichiercsv) {

            // $fichiercsv = recup_ini("chemin_csv") . "\\" . $_GET['fichier_CSV'];

			$ouvert = fopen($fichiercsv, "r");
			// echo "<br>ouvert = " . $ouvert;
			$col = fgetcsv($ouvert, 0, recup_ini("separateur"));
			// echo "<br>colonnes = " . $col[0];
			$prefixe = substr($col[0], 3, 1);
			// echo "<br>prefixe = $prefixe";
			//fclose($fichiercsv);
			
			echo "<br> code premier enregistrement : " . $prefixe;
			if (is_numeric($prefixe)) {
				$groupe = "Eleves";
				echo " - > $groupe";
			} else {
				$groupe = "Professeurs";
				echo " - > $groupe";
			}

		return $groupe;
}


function quelle_assignation($index_prof) {  /// recup classes d'un prof depuis BDD

			$pdo = connexion_Table("beaufrene", "");
			$sql_classes = "SELECT * FROM Assignations WHERE professeur_assignation = '$index_prof'";  /// recup des classes où enseignent les profs
			$req_classes = $pdo->query($sql_classes);
			$z=7;
			$tableau_classes = array(); // remet le tableau classes à zero
			while ($result_classes = $req_classes->fetch()) {
				$tableau_classes[$z]= $result_classes[1];
				$z++;
			}
			// echo "<br>Vardump de tableau_classes";
			// var_dump($tableau_classes);
			return $tableau_classes;
}


 function recup_classes($index_prof, $tableau) {  /// recup classes d'un prof depuis CSV
			
			$tableau_classes = Array();
			// echo "<p>Recuperation des classes du prof $index_prof</p>";
			// var_dump($tableau);
			 for ($ccc = 4; $ccc < count($tableau); ++$ccc) {
				// echo "<br>" . $tableau[$ccc];
				$tableau_classes[] = $tableau[$ccc];
			}
			
			return $tableau_classes;
 }


function max_col_tableau3D($a, $tab_general) {
		
			$nb_classes = Array();
			
			while (list($b) = each($tab_general[$a])){
				$nb_classes[] = sizeof($tab_general[$a][$b])-4;
			}
			
			return max($nb_classes);
}
		
		
function nom_champs($bdd, $table){

		$pdo_ch = connexion_Table("$bdd","");
		$sql_ch = "SELECT * FROM " . $table;
        $req_ch = $pdo_ch->query($sql_ch);
		
		$total_col = $req_ch->ColumnCount();
		// echo "<p>Nombre de colonnes dans Eleves</p>";
		// echo $total_col;
		for ($cptr=0 ; $cptr < $total_col ; $cptr++) {
			$meta = $req_ch->getColumnMeta($cptr);
			$champs[] = $meta['name'];
		}
		// var_dump($champs);
		return $champs;
}		
		